package com.tanhua.dubbo.api.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.tanhua.domain.db.Questionnaire;
import com.tanhua.domain.db.QuestionnaireReport;
import com.tanhua.dubbo.api.QuestionnaireReportApi;
import com.tanhua.dubbo.mapper.QuestionnaireReportMapper;
import org.apache.dubbo.config.annotation.Service;
import org.springframework.beans.factory.annotation.Autowired;

import java.util.List;

@Service
public class QuestionnaireReportApiImpl implements QuestionnaireReportApi {

    @Autowired
    private QuestionnaireReportMapper questionnaireReportMapper;

    @Override
    public Long save(QuestionnaireReport questionnaireReport) {

        questionnaireReportMapper.insert(questionnaireReport);
        Long id = questionnaireReport.getId();
        return id;
    }

    @Override
    public QuestionnaireReport findByQuestionnaireId(Long userId, Long questionnaireId) {
        QueryWrapper<QuestionnaireReport> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("user_id", userId).eq("questionnaire_id", questionnaireId);
        QuestionnaireReport questionnaireReport = questionnaireReportMapper.selectOne(queryWrapper);
        return questionnaireReport;
    }

    @Override
    public void update(QuestionnaireReport questionnaireReport) {
        questionnaireReportMapper.updateById(questionnaireReport);
    }

    @Override
    public QuestionnaireReport findById(Long id) {
        QueryWrapper<QuestionnaireReport> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("id", id);
        QuestionnaireReport questionnaireReport = questionnaireReportMapper.selectOne(queryWrapper);
        return questionnaireReport;
    }

    @Override
    public List<QuestionnaireReport> findListByResultId(Long resultId) {
        QueryWrapper<QuestionnaireReport> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("result_id", resultId);
        List<QuestionnaireReport> questionnaireReportList = questionnaireReportMapper.selectList(queryWrapper);
        return questionnaireReportList;
    }
}
